The variable length option.

Suppose you want to produce the following diagram: A f130 C p i B Following the instructions of the previous sections you will type:

\DIAG
{A}\n{}         \n{\Ear{f}}\n{}          \n{C}\nn
{} \n{\seepI{p}}\n{}       \n{\nemonO{i}}\nn
{} \n{}         \n{B}      \nn
\diag
and you will get A f C p i B which is not exactly what you wanted!

The Diagram Macros assume that a primary arrow connects two vertices attached at the two horizontally adjacent points of the pattern, and a corresponding assumption is made for the secondary and the ternary arrows. The east arrow of the previous diagram does not satisfy that assumption: it connects vertices situated at a four intervals distance. The Diagram Macros provide you with a variable length option which allows you to modify the length of an arrow in order to take care of such particularities. The ``variable length option'' is a special feature, which means that the Diagram Macros need your help to handle the problem. In fact, what you have to do is to decide the new length of the arrow.

Not all arrows have been provided with a ``variable length option''; here are the possibilities:

To take advantage of the variable length option, it suffices to follow the name of the corresponding command with the lower-case letter +v+ and give to that command an additional last argument which will be

those two lengthes must be expressed in points. The new arrow will still be centered with respect to the corresponding point of the pattern. For example typing +f130+ for the east arrow of the previous diagram will produce the desired result as in the first diagram. Typing +g30+ will produce a south monomorphism with right name g and length 30 points, typing +fg100+ will produce a west pair of adjoint arrows with names f, g and length 100 points and typing +82.5+ will produce an unamed north-east arrow with horizontal extent 82.5 points.

The standard length of a primary arrow is 50pt; since each interval of the pattern has length 40pt, the new length of a primary arrow will be

50 + (n×40)

where n is the number of intervals the arrow crosses. In the same way the horizontal extent of a secondary arrow is 58pt, so that the new horizontal extent of a secondary arrow will be

58 + (n×40)

where n is the number of horizontal intervals the arrow crosses.